#ifndef STACK_H
#define STACK_H
#include "tsalpha.h"
#include "bool.h"
#include "tspos.h"

typedef struct sStack * Stack;

/* constructor */
Stack
stack_empty(const tspos max);

/* agrega un elemento a la pila */
void
stack_push(Stack s, tsalpha elem);

/* devuelve el primer elemento de la pila */
tsalpha
stack_top(const Stack s);

/* saca el primer elemento de la pila */
void
stack_pop(Stack s);

/* ¿pila vacia? */
Bool
isEmpty_stack(const Stack s);

/* destructor */
Stack
stack_destroy(Stack s);

#endif
